package io.github.sds100.keymapper.base.constraints

import kotlinx.serialization.Serializable

// THESE MUST BE ORDERED IN HOW THE CONSTRAINTS SHOULD BE SORTED
// IN THE KEY MAP LIST
@Serializable
enum class ConstraintId {
    APP_IN_FOREGROUND,
    APP_NOT_IN_FOREGROUND,
    APP_PLAYING_MEDIA,
    APP_NOT_PLAYING_MEDIA,
    MEDIA_NOT_PLAYING,
    MEDIA_PLAYING,

    BT_DEVICE_CONNECTED,
    BT_DEVICE_DISCONNECTED,

    SCREEN_ON,
    SCREEN_OFF,

    DISPLAY_ORIENTATION_PORTRAIT,
    DISPLAY_ORIENTATION_LANDSCAPE,
    DISPLAY_ORIENTATION_0,
    DISPLAY_ORIENTATION_90,
    DISPLAY_ORIENTATION_180,
    DISPLAY_ORIENTATION_270,

    PHYSICAL_ORIENTATION_PORTRAIT,
    PHYSICAL_ORIENTATION_LANDSCAPE,
    PHYSICAL_ORIENTATION_PORTRAIT_INVERTED,
    PHYSICAL_ORIENTATION_LANDSCAPE_INVERTED,

    FLASHLIGHT_ON,
    FLASHLIGHT_OFF,

    WIFI_ON,
    WIFI_OFF,
    WIFI_CONNECTED,
    WIFI_DISCONNECTED,

    IME_CHOSEN,
    IME_NOT_CHOSEN,

    KEYBOARD_SHOWING,
    KEYBOARD_NOT_SHOWING,

    DEVICE_IS_LOCKED,
    DEVICE_IS_UNLOCKED,
    LOCK_SCREEN_SHOWING,
    LOCK_SCREEN_NOT_SHOWING,

    IN_PHONE_CALL,
    NOT_IN_PHONE_CALL,
    PHONE_RINGING,

    CHARGING,
    DISCHARGING,

    HINGE_CLOSED,
    HINGE_OPEN,

    TIME,
}
